/*
    子数组最大累加和问题与扩展-上

    前置知识: 
    讲解051-二分答案法，本节课题目5需要这个重要技巧
    讲解066-从递归入手一维动态规划，本节课都是一维动态规划的问题
    【必备】课程的动态规划大专题从讲解066开始，建议从头开始学习会比较系统

    子数组最大累加和问题是一个非常经典的问题，也比较简单

    但是 扩展出的问题很多，在笔试、面试中特别常见

    扩展出的问题很多非常有趣，解法也比较巧妙，用讲解070、讲解071两期来给讲述

    ================================================

    题目1
    子数组最大累加和
    给你一个整数数组 nums
    请你找出一个具有最大累加和的非空子数组
    返回其最大累加和
    测试链接 : https://leetcode.cn/problems/maximum-subarray/

    附加问题
    子数组中找到拥有最大累加和的子数组，并返回如下三个信息:
    1) 最大累加和子数组的开头left
    2) 最大累加和子数组的结尾right
    3) 最大累加和子数组的累加和sum
    如果不止一个子数组拥有最大累加和，那么找到哪一个都可以

    ================================================

    题目2
    不能选相邻元素的最大累加和问题
    给定一个数组，可以随意选择数字，但是不能选择相邻的数字
    返回能得到的最大累加和
    测试链接 : https://leetcode.cn/problems/house-robber/

    ================================================

    题目3
    环形数组的子数组最大累加和
    给定一个数组nums，长度为n
    nums是一个环形数组，下标0和下标n-1是连在一起的
    返回环形数组中子数组最大累加和
    测试链接 : https://leetcode.cn/problems/maximum-sum-circular-subarray/

    ================================================

    题目4
    环形数组中不能选相邻元素的最大累加和
    给定一个数组nums，长度为n
    nums是一个环形数组，下标0和下标n-1是连在一起的
    可以随意选择数字，但是不能选择相邻的数字
    返回能得到的最大累加和
    测试链接 : https://leetcode.cn/problems/house-robber-ii/

    ================================================

    题目5
    打家劫舍 IV
    沿街有一排连续的房屋。每间房屋内都藏有一定的现金
    现在有一位小偷计划从这些房屋中窃取现金
    由于相邻的房屋装有相互连通的防盗系统，所以小偷不会窃取相邻的房屋
    小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额
    给你一个整数数组 nums 表示每间房屋存放的现金金额
    第i间房屋中放有nums[i]的钱数
    另给你一个整数k，表示小偷需要窃取至少 k 间房屋
    返回小偷需要的最小窃取能力值
    测试链接 : https://leetcode.cn/problems/house-robber-iv/

    ================================================

    题目6
    子矩阵最大累加和问题
    给定一个二维数组grid，找到其中子矩阵的最大累加和
    返回拥有最大累加和的子矩阵左上角和右下角坐标
    如果有多个子矩阵都有最大累加和，返回哪一个都可以
    测试链接 : https://leetcode.cn/problems/max-submatrix-lcci/

*/